// static/js/curl_convert.js


// 导入 :
import { showAlert } from '../js/common.js';
import { showAlertNew } from '../js/common.js';
import { formatJson } from '../js/common_json.js';
import { syntaxHighlight } from '../js/common_json.js';


// 获取上次输入的内容并显示 : 页面加载的时候, 将上次输入的 curl 填入 curl_command 框内
window.onload = function() {
    // 页面加载时，将之前存储的内容填入输入框
    const savedCurlCommand = localStorage.getItem('curlCommand');
    if (savedCurlCommand) {
        document.getElementById('curl_command').value = savedCurlCommand;
    }

    document.getElementById('curl_command').addEventListener('input', function() {
        localStorage.setItem('curlCommand', this.value);
    });
};


// 美化 result 的 json :
document.addEventListener('DOMContentLoaded', (event) => {
    const resultElement = document.getElementById('result');
    if (resultElement) {
        const resultText = resultElement.textContent.trim();
        if (resultText) {
            try {
                const json = JSON.parse(resultText);
                resultElement.innerHTML = formatJson(json);
            } catch (e) {
                // 如果不是 JSON，尝试解析为 Python dict
                try {
                    let pythonDict = resultText;
                    // 将 Python 字典语法转换为 JSON 语法
                    pythonDict = pythonDict
                        // .replace(/'/g, '"') // 将单引号替换为双引号
                        .replaceAll("'", '"')
                        .replace(/None/g, 'null') // 将 None 替换为 null
                        .replace(/True/g, 'true') // 将 True 替换为 true
                        .replace(/False/g, 'false'); // 将 False 替换为 false
                    const json = JSON.parse(pythonDict);
                    resultElement.innerHTML = formatJson(json);
                } catch (e) {
                    // 如果既不是 JSON，也不是 Python dict，则原样显示
                    resultElement.textContent = resultText;
                }
            }
        } else {
            resultElement.textContent = '等待执行';
        }
    }
});


// pytest 页面的复制方法 :
function copyPytestToClipboard(selector) {
    var element = document.querySelector(selector);
    if(!element){
        showAlertNew('未找到元素');
        return ;
    }
    const resultText = element.innerText;

    if (navigator.clipboard) {
        // 现代浏览器支持剪贴板 API
        navigator.clipboard.writeText(resultText)
            .then(() => {
                showAlertNew('复制到剪切板成功');
            })
            .catch((err) => {
                showAlertNew('复制失败: ' + err.message);
            });
    } else {
        // 退回到旧版的复制方法
        fallbackCopyTextToClipboard(resultText, '代码');
    }
}


// 绑定到 window :
window.copyPytestToClipboard = copyPytestToClipboard;